<?php
require_once 'inc_cookie.php';
require_once 'inc_funciones_bd.php';
/*
require_once 'inc_funciones_alertas.php';
*/


switch ($option) {
	case 'carga_lista':
		lista_destinatario($_idproyecto);
		break;
	case 'lista_empresa_proyecto':
		lista_empresa_proyecto($_idproyecto,$idfase,$tipo,'seleccione un contrato',$_empresa,$_perfil);
		break;
	
	case 'lista_empresa_proyecto_md':
	  // lista_empresa_proyecto_md
	   lista_empresa_proyecto_md($_idproyecto,$idfase,$tipo,'seleccione un contrato',$_empresa,$_perfil);
	break;
	
	case 'lista_empresa_pestanas':
	  // listar empresas en los foltros de pestña  con cada restriccion 
	 //  lista_empresa_proyecto_md($_idproyecto,$idfase,$tipo,'seleccione un contrato',$_empresa,$_perfil);
	   lista_empresa_pestanas($nam_tab,$_idproyecto,$idfase,$tipo,'Seleccione un contrato',$_empresa,$_perfil);
	break;


	case 'configura_restriccion':
		configura_restriccion($_idproyecto,$area,$tipo_area,$opcion);
		break;
	case 'lista_empresa_todos' :
		lista_empresa_todos($tipo,'seleccione un contrato',$ruc_filtro);	
		break;
	
	case 'lista_configuracion_perfil' :
		lista_configuracion_perfil($mod,$vfase,$vtip);	
		break;
		
	case 'Guardar_configuracion_perfil' :
	
		$vv_ssc=str_replace('\\', '', $datos);
		
		
		if($Vtbl=='ap'){		
			$arr_areaC= explode('&',$vv_ssc);			
			for($i=0;$i<count($arr_areaC);$i++){
				
				$arr_ac=$arr_areaC[$i];		
				$varr= explode('*',$arr_ac);
				$vpefls=explode('|',$varr[1]);
				
				echo $varr[0]." ";
				//print_r($vpefls);					
				$vrestric_a='';
				$vrestric_r='';
				$vrestric_g='';
				$vrestric_v='';
						
				if($vpefls[0]!=''){ $vrestric_a=$vpefls[0];}
				if($vpefls[1]!=''){ $vrestric_r=$vpefls[1];}
				if($vpefls[2]!=''){ $vrestric_g=$vpefls[2];}
				if($vpefls[3]!=''){ $vrestric_v=$vpefls[3];}				
				
				if($vpefls[0]!='' or $vpefls[1]!='' or $vpefls[2]!='' or $vpefls[3]!=''){
								 /* AND fase ='$vfase' */
				  $sqlUp="update sig_configuracion SET
								restriccion_aprueba='$vrestric_a',
								restriccion_revisa='$vrestric_r',
								restriccion_genera='$vrestric_g',
								restriccion_visualiza='$vrestric_v'
					
						WHERE  modulo ='$varea'  AND area_conocimiento ='$varr[0]' AND criterio ='Perfil';
					";
					fnp_ejecuta_query($sqlUp,'U');	
				}
			}
		}
		
		if($Vtbl=='af'){
		
			$arr_fases= explode('&',$vv_ssc);
			for($i=0; $i<count($arr_fases); $i++){
				
				$st_fas=$arr_fases[$i];				
				$arr_fas= explode('*',$st_fas);
				$arr_ac= explode('-',$arr_fas[1]);
				for($j=0;$j<count($arr_ac); $j++){
					
					$arr_area_c= explode('|',$arr_ac[$j]);
					// verificar existencia
					$sql=" select id_configuracion FROM sig_configuracion
							WHERE  criterio ='Perfil' AND modulo ='{$varea}' AND area_conocimiento ='{$arr_area_c[0]}' AND fase ='{$arr_fas[0]}'; ";
					$nresul=fnp_ejecuta_query($sql,'S');	
					
					if(count($nresul)>0){
						$sql=" update sig_configuracion SET
								 ac_activos = '{$arr_area_c[1]}'
								WHERE  criterio ='Perfil' AND modulo ='{$varea}' AND area_conocimiento ='{$arr_area_c[0]}' AND fase ='{$arr_fas[0]}' ";
					}else{
						$sql="insert into sig_configuracion (
								   modulo
								  ,area_conocimiento
								  ,fase
								  ,criterio  
								  ,tipo
								  ,ac_activos
								) VALUES (
								   '{$varea}'  -- modulo - IN varchar(20)
								  ,'{$arr_area_c[0]}'  -- area_conocimiento - IN varchar(20)
								  ,'{$arr_fas[0]}'  -- fase - IN varchar(20)
								  ,'Perfil'  -- criterio - IN varchar(60)
								  ,'P'  -- tipo - IN varchar(20)
								  ,'{$arr_area_c[1]}'  -- ac_activos - IN text
								)";
					}
					fnp_ejecuta_query($sql,'I');
										
				}
			
			}
					
		}
		
	
	
	break;
	
	case 'list_persCp_Files' :
		
		$cookie_usuarioNB = $_COOKIE['proyecta_nb'];
		$usuarioNB = explode('|', base64_decode($cookie_usuarioNB));
	
		listaPersCp_File($vtp,$vtps,$vtpy,$vnomSel,$vnurl,$usuarioNB[5]);
		
	break;
	
	case 'gb_persCp_Files' :
	
	
		$recurso = json_decode(str_replace('\\', '', $parametro),true);
		//$direc_s=utf8_decode($direc_s);
		
		$direc_s=urldecode($direc_s);
	     //echo $vnurl;
	   //  $direc_s=utf8_encode($direc_s);
				
		switch($vtp){
			case 'proy':
				if(count($recurso)>0){
					foreach($recurso as $n){
						if($n['accion']=='I'){
							$sql=" insert  into nube_carpt_proy (
									   tp_carpeta ,tipo_py ,Proyecto ,nom_carpeta ,url_carpta ,id_pers_acceso
									  ,tip_pers_acceso ,t_action
									  									  
									) VALUES (
									   '{$vtp}'  -- tp_carpeta - IN varchar(20)
									  ,'{$vtps}'  -- tipo_py - IN varchar(11)
									  ,'{$vtpy}'   -- Proyecto - IN int(11)
									  ,'{$cp_s}'  -- nom_carpeta - IN varchar(500)
									  ,'{$direc_s}'  -- url_carpta - IN text
									  ,'{$n['idpersona']}'  -- id_pers_acceso - IN text
									  ,'{$n['tp_pers']}'  -- tip_pers_acceso - IN varchar(20)
									  ,'{$n['cp_acction']}'  -- t_action - IN varchar(20)
									) ";
									
						}
						if($n['accion']=='U'){
							$sql=" update nube_carpt_proy SET
										  t_action = '{$n['cp_acction']}' -- varchar(20)									  
									where tp_carpeta = '{$vtp}' AND tipo_py = '{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$cp_s}'
									AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}' AND tip_pers_acceso ='{$n['tp_pers']}'; ";
							
						}
						if($n['accion']=='D'){
							$sql=" delete from nube_carpt_proy 
									where tp_carpeta = '{$vtp}' AND tipo_py = '{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$cp_s}'
									AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}' AND tip_pers_acceso ='{$n['tp_pers']}'; ";
						}
						
						fnp_ejecuta_query($sql,'U');
					}
				}
			break;
			
			case 'pers':
			
					if(count($recurso)>0){
						foreach($recurso as $n){
							
							if($n['accion']=='I'){
								$sql=" insert into nube_carpt_pers (
									   tp_carpeta   ,pers_carpeta  ,nom_carpeta	  ,url_carpta ,id_pers_acceso  ,t_action
									  
									) VALUES (
									   '{$vtp}'  -- tp_carpeta - IN varchar(20)
									  ,'{$vtpy}'  -- pers_carpeta - IN int(11)
									  ,'{$cp_s}'  -- nom_carpeta - IN varchar(300)
									  ,'{$direc_s}'  -- url_carpta - IN text
									  ,'{$n['idpersona']}'  -- id_pers_acceso - IN text
									  ,'{$n['cp_acction']}'  -- t_action - IN varchar(20) 
									) ";
							}
							if($n['accion']=='U'){
								$sql=" update nube_carpt_pers SET
									 t_action = '{$n['cp_acction']}'   
									 WHERE  tp_carpeta ='{$vtp}' AND pers_carpeta ='{$vtpy}' AND nom_carpeta ='{$cp_s}' 
											AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}' ";
							
							}
							
							if($n['accion']=='D'){
								$sql=" delete from nube_carpt_pers 
										WHERE  tp_carpeta ='{$vtp}' AND pers_carpeta ='{$vtpy}' AND nom_carpeta ='{$cp_s}' 
											AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}' ";
								
							}
							
							fnp_ejecuta_query($sql,'U');
						}
					}
				
									
			break;
			
			case 'a':
					
					if(count($recurso)>0){
						foreach($recurso as $n){
							
							if($n['accion']=='I'){
								$sql=" insert into nube_carpt_area (
										   tp_carpeta
										  ,area
										  ,nom_carpeta
										  ,url_carpta
										  ,id_pers_acceso
										  ,t_action
										  
										) VALUES (
										   '{$vtp}'  -- tp_carpeta - IN varchar(20)
										  ,'{$vtpy}'   -- area - IN int(11)
										  ,'{$cp_s}'  -- nom_carpeta - IN varchar(300)
										  ,'{$direc_s}'  -- url_carpta - IN text
										  ,'{$n['idpersona']}'  -- id_pers_acceso - IN text
										  ,'{$n['cp_acction']}'  -- t_action - IN varchar(20)
										 
										) ";
							}
							if($n['accion']=='U'){
								$sql="update nube_carpt_area SET
									  t_action = '{$n['cp_acction']}' -- varchar(20)
									  
									WHERE tp_carpeta ='{$vtp}'  AND area ='{$vtpy}' AND nom_carpeta ='{$cp_s}'
									AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}' ";
							}
							if($n['accion']=='D'){
								$sql="delete from nube_carpt_area
										WHERE tp_carpeta ='{$vtp}'  AND area ='{$vtpy}' AND nom_carpeta ='{$cp_s}'
									AND url_carpta ='{$direc_s}' AND id_pers_acceso ='{$n['idpersona']}'  ;";
							}
							fnp_ejecuta_query($sql,'U');
						}
					}
					
			
			break;
		}
		
	break;
	
}

function listaPersCp_File($vtp,$vtps,$vtpy,$vnomSel,$vnurl,$v_admin){
	
	//echo $vnurl;
	
	$vnurl=urldecode($vnurl);
	//echo $vnurl;
	$vnurl=utf8_encode($vnurl);
	//echo $vnurl;
	//$vnurl=mb_strtolower($vnurl,'UTF-8');
	//echo $v_admin;
	 // --  director -- 
	$sql_acctiones="select  idcampo, descripcion FROM sig_tabla_general where tabla='nube_accion' and idcampo!='P' order by orden; ";
	
	if($v_admin=='AdminTI' or $v_admin=='Gerencia' or $v_admin=='director'){
		$sql_acctiones="select  idcampo, descripcion FROM sig_tabla_general where tabla='nube_accion' order by orden; ";
	}
	
	
	$vleng=strlen($vnurl);
	$vnurl= substr($vnurl,0,$vleng-1);
	
	$titulo_col='';
	switch($vtp){
		case 'proy':
			$sql="";
			 // listar contactos del proyecto si es SP sino Listar Gente Proyecta
			 if($vtps=='sip'){
				 $sql="select distinct usu.tipo, ep.razon_social as empresa, usu.idusuario as id_usuario
				 			, CONCAT_WS(' ',conta.nombre_contacto, conta.apellido_contacto) as  nombre, 
							conta.correo_contacto,'5' as area,
							(select count(t_action) from nube_carpt_proy
							  where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							   AND id_pers_acceso =conta.idcontacto AND tip_pers_acceso =usu.tipo) as ncomp
							,
							(select t_action from nube_carpt_proy
							  where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							   AND id_pers_acceso =conta.idcontacto AND tip_pers_acceso =usu.tipo) as t_action
						FROM sig_usuario_exterior_acceso  usu
							inner join  sig_contacto_empresa conta on conta.idcontacto= usu.idusuario
							inner join sig_empresa ep on ep.ruc = conta.ruc_empresa
							where usu.idproyecto='{$vtpy}' and usu.estado='A'
													
							union
						
						select distinct 'PRO' as tipo, rep.nombre_empresa as empresa , id_usuario as id_usuario
								, CONCAT_WS(' ', rh.apellido_paterno, rh.apellido_materno, rh.nombres )   as nombre ,
								 rh.email_intitucional as correo_contacto,'5' as area,
								 (select count(t_action) from nube_carpt_proy
							where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							 AND id_pers_acceso =rh.num_documet_iden AND tip_pers_acceso ='PRO') as ncomp,
						   (select t_action from nube_carpt_proy
							where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							 AND id_pers_acceso =rh.num_documet_iden AND tip_pers_acceso ='PRO') as t_action
						
						FROM sig_usuario_fase_proyecto  usu
						inner join rh_datos_generles_colaborador rh on rh.num_documet_iden= usu.id_usuario
						left join rh_empresa rep on rep.num_empresa = rh.num_empresa
						where usu.id_proyecto='{$vtpy}'  and usu.estado='A'; ";
			 }
			 if($vtps=='nsip'){
					 $sql=" 
							select  * from (
							select 'PRO' as tipo, rep.nombre_empresa as empresa , rh.num_documet_iden as id_usuario
							,CONCAT_WS(' ', rh.apellido_paterno, rh.apellido_materno, rh.nombres )   as nombre ,
							rh.email_intitucional as correo_contacto,
							
							(select id_area FROM rh_colaborador_perfil 
							  where  num_colaborador=rh.num_documet_iden order by item_colaborador_perfil desc limit 1) as area,
							  
						   (select count(t_action) from nube_carpt_proy
							where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							 AND id_pers_acceso =rh.num_documet_iden AND tip_pers_acceso ='PRO') as ncomp,
														
							  
						   (select t_action from nube_carpt_proy
							where tp_carpeta ='{$vtp}' AND tipo_py ='{$vtps}' AND Proyecto ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
							 AND id_pers_acceso =rh.num_documet_iden AND tip_pers_acceso ='PRO') as t_action
									
							FROM rh_datos_generles_colaborador rh
							left join rh_empresa rep on rep.num_empresa = rh.num_empresa
							where rh.estado='A'
							) tabla where area='5' ";
			}
			
			
			$titulo_col="Empresa";				
		break;
		case 'pers':
		
			$sql=" select 'PRO' as tipo, rep.nombre_empresa as empresa , rh.num_documet_iden as id_usuario,
					CONCAT_WS(' ', rh.apellido_paterno, rh.apellido_materno, rh.nombres )   as nombre ,
					rh.email_intitucional as correo_contacto,
					(select count(id_area) FROM rh_colaborador_perfil 
					  where  num_colaborador=rh.num_documet_iden order by item_colaborador_perfil desc limit 1) as area,
					  (select count(t_action) from nube_carpt_pers
					where tp_carpeta ='{$vtp}' AND pers_carpeta ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
					 AND id_pers_acceso =rh.num_documet_iden ) as ncomp	
					  ,
				   (select t_action from nube_carpt_pers
					where tp_carpeta ='{$vtp}' AND pers_carpeta ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
					 AND id_pers_acceso =rh.num_documet_iden  ) as t_action							
					FROM rh_datos_generles_colaborador rh
					left join rh_empresa rep on rep.num_empresa = rh.num_empresa
					where rh.estado='A' ";
		
			$titulo_col="Empresa";	
		break;
		case 'a':
			$sql=" select 'PRO' as tipo, rep.nombre_empresa as empresa , rh.num_documet_iden as id_usuario,
					CONCAT_WS(' ', rh.apellido_paterno, rh.apellido_materno, rh.nombres )   as nombre ,
					rh.email_intitucional as correo_contacto,
					(select id_area FROM rh_colaborador_perfil 
					  where  num_colaborador=rh.num_documet_iden order by item_colaborador_perfil desc limit 1) as area,
					  
					  (select count(t_action) from nube_carpt_area
					where tp_carpeta ='{$vtp}'  AND area ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
					 AND id_pers_acceso =rh.num_documet_iden) as ncomp
					  ,
				   (select t_action from nube_carpt_area
					where tp_carpeta ='{$vtp}'AND area ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
					 AND id_pers_acceso =rh.num_documet_iden ) as t_action
							
					FROM rh_datos_generles_colaborador rh
					left join rh_empresa rep on rep.num_empresa = rh.num_empresa
					where rh.estado='A' ";	
					
					
					
			$sql="select * from (

				select 'PRO' as tipo, ep.nombre_empresa , dg.estado , dg.num_documet_iden  as id_usuario, CONCAT_WS(' ',dg.apellido_paterno, dg.apellido_materno, dg.nombres ) nombre,
					  dg.email_intitucional as correo_contacto,
					  ( select hp.id_area  FROM rh_colaborador_perfil hp   where hp.num_colaborador= dg.num_documet_iden
						  order by hp.item_colaborador_perfil desc limit 1) as area,
					   ( select hp.idcargo  FROM rh_colaborador_perfil hp  where hp.num_colaborador=dg.num_documet_iden
						  order by hp.item_colaborador_perfil desc limit 1) as cargo,
						  
						 (select count(t_action) from nube_carpt_area
									where tp_carpeta ='{$vtp}'  AND area ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
									 AND id_pers_acceso =dg.num_documet_iden ) as ncomp,
									 
						(select ar.nombre_area FROM rh_colaborador_perfil hp  
								inner join rh_area ar on ar.num_area= hp.id_area
								where hp.num_colaborador=dg.num_documet_iden          
											order by hp.item_colaborador_perfil desc limit 1)  as empresa,
																
						  
					   (select t_action from nube_carpt_area
						where tp_carpeta ='{$vtp}'  AND area ='{$vtpy}' AND nom_carpeta ='{$vnomSel}' and url_carpta='{$vnurl}'
						 AND id_pers_acceso =dg.num_documet_iden  ) as t_action         
		   
					  
				  FROM rh_datos_generles_colaborador dg
				  left join rh_empresa ep on ep.num_empresa= dg.num_empresa
				) tabla where estado='A' and  ( if( area='5', cargo in(21,14,17),cargo in(13,16,18,20,25,27,30,32,33,36,37,42)) or id_usuario  in('44539621','43578156','09414370','07261160','09414370','47261944'))
				  order by area desc, nombre asc; 
				 ";
				 
		$titulo_col="Area";	
		break;
	}
    // echo $sql;
	// pintar grilla
		if($sql!=""){
				$result = fnp_ejecuta_query($sql, 'S');
			}
			
				
				
			if(count($result)>0){
				
				echo "<div class='exterior'>";
				echo "<div class='interior'>";
				echo "<table id='tlb_lstCp' class='table_principal_g'>";
				echo "<thead>";
					echo "<th width='2'></th>";
					echo "<th style='padding-left:3px;' width='30%'>{$titulo_col}</th>";
					echo "<th style='padding-left:3px;' width='40%'>Nombre</th>";
					echo "<th width='107'>Puede(n)</th>";
				echo "</thead>";
				echo "<tbody>";
				foreach($result as $n){
					$acction_fl='I';
					$checked='';
					$vacc=$n['t_action'];
					 if($n['ncomp']>0){ $acction_fl='U'; $checked='checked'; }
					echo "<tr>";
						echo "<td width='2' class='{$acction_fl}' align='center'>";
								if($n['ncomp']>0){
									// compara si es propyestario y adminIT  G.G , G.O
									if($vacc=='P'){
										if($v_admin=='AdminTI' or $v_admin=='director' or $v_admin=='Gerencia'){
											echo"<input  type='checkbox' value='{$n['id_usuario']}' data-t='{$n['tipo']}' {$checked}  /> ";	
										}else{
											echo "<img src='sipv2/utilitarios/imagenes/check_ck.png' style=''>";	
										}
										
									}else{
										echo"<input  type='checkbox' value='{$n['id_usuario']}' data-t='{$n['tipo']}' {$checked}  /> ";	
									}
									
								}else{
									echo"<input  type='checkbox' value='{$n['id_usuario']}' data-t='{$n['tipo']}' {$checked}  /> ";
								}
								// echo"<input  type='checkbox' value='{$n['id_usuario']}' data-t='{$n['tipo']}' {$checked}  /> ";
								 // check_ck
								// echo "<img src='sipv2/utilitarios/imagenes/check_ck.png' style=''>";
						echo " </td>";
						echo "<td style='padding-left:3px;' width='30%'>".ucwords(mb_strtolower($n['empresa'],'UTF-8'))."</td>";
						echo "<td style='padding-left:3px;' width='40%'>".ucwords(mb_strtolower($n['nombre'],'UTF-8'))."</td>";
						echo "<td align='center' width='107'> 
								<select name='lst_act' > ";
								 echo fnp_genera_combo($vacc,$sql_acctiones,'seleccione');
							echo "</select>
							 </td>";
					echo "</tr>";
				}
				echo "</tbody>";
				echo "</table>";
				echo "</div>";
				echo "</div>";
				echo "<input type='hidden' id='cp_s' value='{$vnomSel}' >";
				echo "<input type='hidden' id='direc_s' value='{$vnurl}' >";
				echo "<br>";
			}
	
}


// Devuelve URl  n estandar o  p con el puerto y lo niveles deceados 
function obtenerURL($t_url,$limit=''){
	
	if($t_url=='n' ){
		$url=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
	}
	
	if($t_url=='p' or $t_url=''){
		$url=$_SERVER['HTTP_HOST'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
	}
	
	if($limit!=''){
		$arr_url = explode('/',$url);
		$url='';
		for($i=0;$i<$limit;$i++){
			$url.=$arr_url[$i]."/";
		}
	}
	
	$url="http://".$url;
	return $url;
}


function cbs_perfila($nseleccion,$class='',$vestado=''){
	
	$arr= array(0 => "A", 1  => "R", 2 => "G",3=> "V");
	
	echo "<select class='{$class}' {$vestado}>";
	echo "<option value='0' selected='selected'> </option>";
	for($j=0;$j<count($arr);$j++){
		if($arr[$j]==$nseleccion){		
			echo "<option value='{$arr[$j]}' selected='selected'>{$arr[$j]}</option>";
		}else{
			echo "<option value='{$arr[$j]}' >{$arr[$j]}</option>";
		}
		
	}
	
	echo "</select>";
}

function lista_configuracion_perfil($mod,$vfase,$vtip){
		
	if($vtip=='ap'){
	
		$sql="select ac.id_area_conocimiento as  'idconocimiento',ac.area_conocimiento 'conocimiento', ac.control,ac.flag ,
		conf.restriccion_visualiza, conf.restriccion_genera, conf.restriccion_revisa, conf.restriccion_aprueba,ac.estado
		from sig_area_conocimiento ac 
		left join sig_configuracion conf on conf.area_conocimiento = replace(ac.id_area_conocimiento,'.','') and conf.modulo = '{$mod}' and conf.fase = '{$vfase}' 
		where ac.tipo_modulo = '{$mod}'  and ac.flag !='3'  order by ac.id_area_conocimiento";
		
		$result = fnp_ejecuta_query($sql,'S');	
		
		
		$sql_perfil="select * from(
					   select  'AdminTI' as idcampo, 'AdminTI' as descripcion,'AD' as descripcion2, 0 as orden, 'proyecta' as flag1
									union
						select  'Gerencia' as idcampo, 'Gerencia' as descripcion,'GG' as descripcion2, 0 as orden, 'proyecta' as flag1          
						union				
						select  idcampo, descripcion, descripcion2, orden, flag1
										FROM sig_tabla_general where tabla like'%perfil_proyecto%'
					  union
					  select  'Comercial' as idcampo, 'Comercial' as descripcion,'COM' as descripcion2, 6 as orden, 'proyecta' as flag1        
						  
						 ) trabla order by orden ;  ";
		$result_pf = fnp_ejecuta_query($sql_perfil,'S');
		
		if($result){
		
		$arr_tpfAcc= array(0 => "A", 1  => "R", 2 => "G",3=> "V");
		
		$colum=count($result_pf);
		
		echo "<thead>";
		
		echo "<tr class='fila_guia'>";
		echo "<th width='450' > </th>";
		foreach($result_pf as $pf){
			echo "<th width='50' > </th>";
		}
		echo "</tr>";
		
		
		echo "<tr>";
		echo "<th rowspan='3' width='450' >Area de Conocmimiento</th>";
		echo "<th colspan='{$colum}' >Perfiles</th>";
		echo "</tr>";
		
		echo "<tr>";
		
		echo "<th colspan='9' >Proyecta</th>";
		echo "<th colspan='3' >Cliente</th>";
		echo "<th colspan='2' >Contratista</th>";
		echo "</tr>";
		
		echo "<tr class='th_perfiles'>";
		foreach($result_pf as $pf){
			echo "<th class='cls_pf {$pf['idcampo']}' width='50' title='{$pf['descripcion']}'>{$pf['descripcion2']}</th>";
		}
		echo "</tr>";
		
		echo "<tr class='fila_guia'>";
		echo "<th width='450' > </th>";
		foreach($result_pf as $pf){
			echo "<th width='50' > </th>";
		}
		echo "</tr>";
		
		echo "</thead>";
		
		
		echo "<tbody class='{$vtip}'>";	
		
		foreach($result as $nfil){
		$vnconocimiento=$nfil['idconocimiento'].' '.$nfil['conocimiento'];
		$vfil_estilo='';
		$vfl_csEst='';
		
		if($nfil['estado']=='D'){ $vfl_csEst='desable_ac';}
		
		if( substr($nfil['idconocimiento'], 2, 3)=='00'){ 
			$vfil_estilo='area_c';
			$vv_idconoc=$ar_conoc=str_replace(".", "", $nfil['idconocimiento']);
			// gerera array
			$visualiza='';			
			$visualiza [0]=json_decode($nfil['restriccion_aprueba'],true);   // A
			$visualiza [1]=json_decode($nfil['restriccion_revisa'],true);    // R
			$visualiza [2]=json_decode($nfil['restriccion_genera'],true);    // G
			$visualiza [3]=json_decode($nfil['restriccion_visualiza'],true); // V				
			
			echo "<tr class='{$vfil_estilo} {$vv_idconoc}'>";
			echo "<td>{$vnconocimiento}  {$vval}"; 
			
			echo"</td>";
			
			foreach($result_pf as $pf){
			echo "<td> &nbsp;</td>";
			}
			
			echo "</tr>";
		
		}else{		 
			echo "<tr class='{$vfil_estilo} {$vfl_csEst}'>";
			echo "<td>&nbsp;&nbsp;&nbsp;{$vnconocimiento} {$vval}</td>";
			
			foreach($result_pf as $pf){
				// perrifl
				$vperfil=$pf['idcampo'];
				$ar_conoc=str_replace(".", "", $nfil['idconocimiento']);
				$vcbc='';
				for($i=0; $i<count($visualiza);$i++){
					$varr=$visualiza[$i][$vperfil];
					if(count($varr)>0){
						if(in_array($ar_conoc, $varr)){
							$vcbc=$arr_tpfAcc[$i];
							$i=count($visualiza);
						}
					}
				}
				
				echo "<td align='center' > ";					
				$vclas=str_replace(".", "", $nfil['idconocimiento'])." ".$vperfil;
				$cb_est='';
				if($vfl_csEst!=''){$vcbc=''; $cb_est="disabled"; }
				cbs_perfila($vcbc,$vclas,$cb_est);
				echo "</td>";
			}
			
			echo "</tr>";
		}
		}
		echo "</tbody>";
	
	} else{
		echo "<tr>";
			echo "<td>";
			echo "No exsiten registros";
			echo "</td>";
		echo "</tr>";
	  }	  
   
	}else { // listar area or fase
				    
					$sql_activo="select CONCAT_WS('-', modulo, fase, area_conocimiento) as nid , ac_activos FROM sig_configuracion 
									where modulo='{$mod}'
									order by area_conocimiento, fase; ";
					$result_Aactivo = fnp_ejecuta_query($sql_activo,'S');
					
					//print_r($result_Aactivo);
					$arr_activos;
					
					for($n=0;$n<count($result_Aactivo);$n++){
						$arr_activos[$result_Aactivo[$n]['nid']]=$result_Aactivo[$n]['ac_activos'];
						
					}
					
					//print_r($arr_activos);
				
					$sql_acono_f="select  ac.id_area_conocimiento, ac.area_conocimiento, ac.flag,ac.estado
							from sig_area_conocimiento ac
							where ac.tipo_modulo ='{$mod}' and ac.flag in(1,2)
							order by ac.id_area_conocimiento; ";
					$result_AC = fnp_ejecuta_query($sql_acono_f,'S');
					
					$sqlFs="select *  from(
							  select 'dashboard' as id_fase_proyecto,'Dashboard' as fase_proyecto, 0 as orden,'1' as flag
							  union
							  select id_fase_proyecto, fase_proyecto, orden, flag
							  FROM sig_fase_proyecto fp
							) tb_fase order by orden ";
					$result_FS = fnp_ejecuta_query($sqlFs,'S');
					$nfas=count($result_FS);
					
					
					
					echo "<thead>";
					
						echo "<tr class='fila_guia'>";
							echo "<th width='430' > </th>";
							foreach($result_FS as $pf){
								echo "<th width='50' > </th>";
							}
						echo "</tr>";
						
						echo "<tr >";
							echo "<th rowspan='2' width='430' >Area de Conocimiento </th>";
							echo "<th colspan='{$nfas}' > Fases </th>";							
						echo "</tr>";
						
						echo "<tr> ";							
							foreach($result_FS as $pf){
								echo "<th width='50' class='cls_fs {$pf['id_fase_proyecto']}' >{$pf['fase_proyecto']} </th>";
							}
						echo "</tr>";
						
						echo "<tr class='fila_guia'>";
							echo "<th width='430' > </th>";
							foreach($result_FS as $pf){
								echo "<th width='50' > </th>";
							}
						echo "</tr>";
					
					echo "</thead>";
					
					echo "<tbody class='{$vtip}' >";
						
						foreach($result_AC as $mn){
							$vv_idconoc=str_replace(".", "", $mn['id_area_conocimiento']);
							
							$vfl_csEst='';
							$vcheck_est='';
							if($mn['estado']=='D'){ $vfl_csEst='desable_ac'; $vcheck_est='disabled';}
							
							if( substr($mn['id_area_conocimiento'], 2, 3)=='00'){ 
							
							$vt_ac_g=$vv_idconoc;
								
							// es ac principal
							$vac=$mn['id_area_conocimiento']." ".$mn['area_conocimiento'];
							echo "<tr class='area_c {$vv_idconoc}'>";
								echo "<td>{$vac}</td>";
								foreach($result_FS as $pf){ echo "<td width='50' >  </td>";	}
								
								echo "</tr>";
							
							}else{
								
								
								echo "<tr class='{$vfl_csEst}'>";
								echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;{$mn['id_area_conocimiento']} {$mn['area_conocimiento']}</td>";
								foreach($result_FS as $pf){
									$Vcheck='';
																     
									 if($vfl_csEst==''){
										 $nminde=$mod.'-'.$pf['id_fase_proyecto'].'-'.$vt_ac_g;
										 $st_act= $arr_activos[$nminde];
										 if($st_act!='[]'){
											 $nvarr_act=json_decode($st_act,true);  
											 if (in_array($vv_idconoc, $nvarr_act)) {
												$Vcheck='checked';
											 }
										 }
									 }
									
								echo "<td width='50' align='center' > "; 	 
								//echo $nminde;
								  //echo $st_act;
							    echo"<input type='checkbox' class='{$vv_idconoc} {$pf['id_fase_proyecto']}'  {$Vcheck} {$vcheck_est} > </td>";	}
								echo "</tr>";
							
							}
							
						}
						
					echo "</tbody>";
									   
	 }	
	

}

//calcula zona horaria de lima
function fnp_hora_local($zona_horaria = 0){
	if ($zona_horaria > -12.1 and $zona_horaria < 12.1){
		$hora_local = time() + ($zona_horaria * 3600);
    	return $hora_local;
  	}
  	return 'error';
}

//hora actial de LIMA-PERU hora_local(-5)
function fnp_hora_actual(){
	$hora_actual=gmdate('h:i:s a', fnp_hora_local(-5));
	return $hora_actual;
}

//FUNCION PARA FECHA-HORA ACTUAL DE LIMA-PERU hora_local(-5)
//EN FORMATO NORMAL Y MYSQL
function fnp_FechaHoraActual($prm_TipoFecha){
	if($prm_TipoFecha=='mysql'){
		$fecha_actual=date('Y-m-d');
	}else{
		$fecha_actual=date('d/m/Y');
	}

	$fecha_hora_actual=$fecha_actual.' '.fnp_hora_actual();
	return $fecha_hora_actual;
}


function cambia_fecha_mysql($fecha){
    ereg( "([0-9]{2,4})/([0-9]{1,2})/([0-9]{1,4})", $fecha, $mifecha);
    $lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
    return $lafecha;
}


function fnp_codifica_nombre($string){
	$nuevoName = strtolower($string);
	$nuevoName = $string;
	$nuevoName = str_replace(' ','_',$nuevoName);
	return $nuevoName;
}



function fnp_nombre_proyecto($prm_idproyecto){
	$slq_proyecto = "select upper(proyecto) 'proyecto' from proyectos
						where codigop = '$prm_idproyecto'";
	$nombre_proyecto = fnp_mostrar_valor($slq_proyecto,'proyecto');
	if($Str_NombreProyecto == '-'){
		$Str_Mensaje='No ha seleccionado ningún proyecto!';
		return $Str_Mensaje;
	}
	return $nombre_proyecto;
}

function fnp_NombrePersona($pr_idPersona){
	$sqlNombre="select * from(
						select dt.num_documet_iden as id, concat_ws(' ', dt.nombres, dt.apellido_paterno, dt.apellido_materno) 'nombre'
						, dt.email_intitucional as correo, dt.clave_intitucional as clave,'PRO' as  perfil, 20512011919 'empresa'
						from rh_datos_generles_colaborador dt
						left join rh_empresa emp on emp.num_empresa= dt.num_empresa
						where dt.estado ='A'
						union
						select cemp.idcontacto as id, concat_ws(' ', cemp.nombre_contacto, cemp.apellido_contacto) 'nombre',
						cemp.correo_contacto as correo , cemp.clave,'' as perfil, cemp.ruc_empresa 'empresa'
						from sig_contacto_empresa cemp
						where cemp.estado ='A'
				  ) usuarios
				  where usuarios.id= '{$pr_idPersona}'";
	$Persona=fnp_mostrar_valor($sqlNombre,'nombre');

	return ucwords($Persona);
}



function cuenta_valor_matriz($array,$key,$valor,$indice){
	$n = 0;
	$total_item = count($array);
	for ($i=$indice; $i < $total_item; $i++) {
		if ($valor == $array[$i][$key]) {
			$n++;
		} else {
			break;
		}
	}
	return $n;
}


function rellena_grilla($num_row,$num_cell){
	for ($i=0; $i < $num_row; $i++) {
		$n = 0;
		echo "<tr height='20'>";
		while ($n < $num_cell) {
			echo "<td></td>";
			$n++;
		}
		echo "</tr>";
	}
}


function lista_persona_proyecto($idproyecto){
	$sql = "select codigo,lower(concat_ws(' ',nombre,apellidos)) as usuario
		from usuarios inner join proy_pers pr on codigo = entidad
		where proyecto = '{$idproyecto}' and tipo_entidad = '1' and pr.estado = 'A'
		order by usuario";

	$result = fnp_ejecuta_query($sql,'S');
	return $result;
}


function placeholder_conocimiento($conocimiento){
	$sql = "select replace(id_area_conocimiento,'.','') as 'idconocimiento',area_conocimiento,placeholder from sig_area_conocimiento
		where tipo_modulo = 'M03' and id_area_conocimiento like '{$conocimiento}%'
		order by id_area_conocimiento";

	$result = fnp_ejecuta_query($sql,'S');
	foreach ($result as $row) {
		$placeholder[$row['idconocimiento']] = $row['placeholder'];
	}
	return $placeholder;
}


function tab_fase_proyecto($idtap,$proyecto,$fase_actual,$Tvisible=''){
	$sql = "select idfase,fase_proyecto
		from sig_proyecto_fase inner join sig_fase_proyecto on id_fase_proyecto = idfase
		where idproyecto = {$proyecto} and id_modulo = 'M03'
		order by orden";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		echo "<ul class='pestana_fase {$Tvisible}' id='{$idtap}'>";
		foreach ($result as $row) {
			$focus = ($row['idfase'] == $fase_actual) ? "class='pestana_focus'" : '' ;
			echo "<li><a name='{$row['idfase']}' href='#' {$focus}>{$row['fase_proyecto']}</a></li>";
		}
		echo "</ul>";
	}
}


function lista_destinatario($idproyecto){
	$sql_lista = "select distinct(ruc) as ruc,lower(nombre_comercial) as nombre
		from sig_empresa
		inner join sig_contacto_empresa sce on ruc_empresa = ruc
		inner join sig_usuario_exterior_acceso sux on sux.idusuario = idcontacto and sux.estado = 'A'
		where sce.estado = 'A'
		and sux.idproyecto = {$idproyecto}";

	$resultado = fnp_ejecuta_query($sql_lista,'S');

	if ($resultado) {
		echo "<option value='null'>--Seleccione--</option>";
		echo "<option value='20512011919'>proyecta</option>";
		foreach ($resultado as $lista) {
			echo "<option value='{$lista['ruc']}'>{$lista['nombre']}</option>";
		}
	}
}

function lista_empresa_pestanas($nam_tab='',$idproyecto,$idfase,$tipo_empresa = '',$inicio='',$default = '',$tpF_empresa=''){
		
		switch($nam_tab){
			
			case 'tab_notificaciones':
				// filatrar cartas para fltro empresa
				if($tpF_empresa!='CON'){$default='';}
				//$default='--';
				$vtip_fl_empresas="'CON','PRO','CLI'";
				// mustra la opcion todo
				$oppy='td|Todos';
				
				Genera_lista_empresa_pestanas($idproyecto,$idfase,$tipo_empresa,$inicio,$default,$tpF_empresa,$vtip_fl_empresas,$oppy);
			break;
			
			case 'tab_carta':
				// filatrar cartas para fltro empresa
				if($tpF_empresa!='CON'){$default='';}
				
				$vtip_fl_empresas="'CON','PRO','CLI'";
				// mustra la opcion todo
				$oppy='td|Todos (Recibidos)';
				
				Genera_lista_empresa_pestanas($idproyecto,$idfase,$tipo_empresa,$inicio,$default,$tpF_empresa,$vtip_fl_empresas,$oppy);
			break;
			
			case'tab_nc':			     
				// filtra las empresas que salgran en el filtro
				$vtip_fl_empresas="'CON'";
				// mustra la opcion todo
				$oppy='td|Todos';
				
				Genera_lista_empresa_pestanas($idproyecto,$idfase,$tipo_empresa,$inicio,$default,$tpF_empresa,$vtip_fl_empresas,$oppy);
			break;
			
			
			default :
				lista_empresa_proyecto_md($idproyecto,$idfase,$tipo_empresa,$inicio,$default,$tpF_empresa);
			break;
		
		}
		
}


function Genera_lista_empresa_pestanas($idproyecto,$idfase,$tipo_empresa = '',$inicio='',$default = '',$tpF_empresa='',$vtip_fl_empresas='',$oppy=''){
	
	$filtro_empresa = ($tipo_empresa != '') ? "and sux.tipo = '{$tipo_empresa}'" : '' ;
	
	$filtro_ep = ($vtip_fl_empresas != '') ? "where tperfil in($vtip_fl_empresas)" : '' ;
	
	//  PRO --   CON  --  CLI 
	$sql = "select  * from (
				select distinct(ruc) as ruc,lower(nombre_comercial) as nombre,'CON' as tperfil
				from sig_empresa
				inner join sig_contacto_empresa sce on ruc_empresa = ruc
				inner join sig_usuario_exterior_acceso sux on sux.idusuario = idcontacto and sux.idfase = '{$idfase}'
				and sux.estado = 'A'
				where sce.estado = 'A'
				and sux.idproyecto = {$idproyecto}
				$filtro_empresa
			    union 
			   /* cliente */
				select py.cliente as ruc, ep.nombre_comercial as nombre,'CLI' as tperfil
				FROM proyectos py
				  inner join  sig_empresa ep on ep.ruc= py.cliente and ep.tipo='1'        
				where py.codigop= {$idproyecto}
				union
				/* proyecta */
				select ruc,  nombre_comercial as nombre ,'PRO' as tperfil 
				  FROM sig_empresa 
				where ruc='20512011919' and  tipo=0
	
				)tabla {$filtro_ep}  order by nombre";
		
  	$result = fnp_ejecuta_query($sql,'S');

  	$optionInicio = ($inicio != '') ? $inicio : 'Seleccione' ;

  	if ($result) {
		if($tpF_empresa!='CON'){
			if($oppy!=''){
				$opn= explode("|", $oppy);
			}else{
			    $opn= array("0", "-- Seleccionar --"); 
			}		
			
			echo "<option value='{$opn[0]}'>{$opn[1]}</option>";		
									
			foreach ($result as $lista) {
				$selected = ($lista['ruc'] == $default) ? "selected='selected'" : "" ;
				echo "<option value='{$lista['ruc']}'  {$selected}> ".ucwords(mb_strtolower($lista['nombre'],'UTF-8'))."</option>";
			}
			
		}else{
			foreach ($result as $lista) {
				if($lista['ruc'] == $default and  $lista['tperfil'] == $tpF_empresa){
					echo "<option value='{$lista['ruc']}'  selected='selected'> ".ucwords(mb_strtolower($lista['nombre'],'UTF-8'))."</option>";
				}
			}
		}
  		
		
		
  	} else {
		echo "<option value='0'>{$optionInicio}</option>";
	}
}



function lista_empresa_proyecto_md($idproyecto,$idfase,$tipo_empresa = '',$inicio='',$default = '',$tpF_empresa=''){
	$filtro_empresa = ($tipo_empresa != '') ? "and sux.tipo = '{$tipo_empresa}'" : '' ;
	//  PRO --   CON  --  CLI 
	$sql = "select  * from (
				select distinct(ruc) as ruc,lower(nombre_comercial) as nombre,'CON' as tperfil
				from sig_empresa
				inner join sig_contacto_empresa sce on ruc_empresa = ruc
				inner join sig_usuario_exterior_acceso sux on sux.idusuario = idcontacto and sux.idfase = '{$idfase}'
				and sux.estado = 'A'
				where sce.estado = 'A'
				and sux.idproyecto = {$idproyecto}
				$filtro_empresa
			    union 
			   /* cliente */
				select py.cliente as ruc, ep.nombre_comercial as nombre,'CLI' as tperfil
				FROM proyectos py
				  inner join  sig_empresa ep on ep.ruc= py.cliente and ep.tipo='1'        
				where py.codigop= {$idproyecto}
				union
				/* proyecta */
				select ruc,  nombre_comercial as nombre ,'PRO' as tperfil 
				  FROM sig_empresa 
				where ruc='20512011919' and  tipo=0
	
				)tabla order by nombre";
		
  	$result = fnp_ejecuta_query($sql,'S');

  	$optionInicio = ($inicio != '') ? $inicio : 'Seleccione' ;

  	if ($result) {
		if($tpF_empresa!='CON'){
			echo "<option value='0'>{$optionInicio}</option>";

			foreach ($result as $lista) {
				$selected = ($lista['ruc'] == $default) ? "selected='selected'" : "" ;
				echo "<option value='{$lista['ruc']}'  {$selected}> ".ucwords(mb_strtolower($lista['nombre'],'UTF-8'))."</option>";
			}
		}else{
			foreach ($result as $lista) {
				if($lista['ruc'] == $default and  $lista['tperfil'] == $tpF_empresa){
					echo "<option value='{$lista['ruc']}'  selected='selected'> ".ucwords(mb_strtolower($lista['nombre'],'UTF-8'))."</option>";
				}
				

			}
		}
  		
		
		
  	} else {
		echo "<option value='0'>{$optionInicio}</option>";
	}
}



function lista_empresa_proyecto($idproyecto,$idfase,$tipo_empresa = '',$inicio='',$default = '',$tpF_empresa=''){
	$filtro_empresa = ($tipo_empresa != '') ? "and sux.tipo = '{$tipo_empresa}'" : '' ;
	
	$filtro_empresa.= ($tpF_empresa == 'CON') ? "and ep.ruc= '{$default}'" : '' ;
	
	
	$sql = "select distinct(ep.ruc) as ruc,lower(ep.nombre_comercial) as nombre
		from sig_empresa ep
		inner join sig_contacto_empresa sce on sce.ruc_empresa = ep.ruc
		inner join sig_usuario_exterior_acceso sux on sux.idusuario = sce.idcontacto and sux.idfase = '{$idfase}'
		and sux.estado = 'A'
		where sce.estado = 'A'
		and sux.idproyecto = {$idproyecto}
		$filtro_empresa
		order by nombre";
		
  	$result = fnp_ejecuta_query($sql,'S');
  	$optionInicio = ($inicio != '') ? $inicio : 'Seleccione' ;

  	if ($result) {
  		echo "<option value='0'>{$optionInicio}</option>";
		foreach ($result as $lista) {
			$selected = ($lista['ruc'] == $default) ? "selected='selected'" : "" ;
			echo "<option value='{$lista['ruc']}' {$selected}>{$lista['nombre']}</option>";
		}
  	} else {
		echo "<option value='0'>{$optionInicio}</option>";
	}
}

function lista_empresa_todos($inicio='',$default = '',$ruc_filtro){			
	$ruc_filtro = ($ruc_filtro != '') ? " where ruc ='$ruc_filtro'" : '' ;
	
	$sql = "select distinct(ep.ruc) as ruc,lower(ep.nombre_comercial) as nombre
		from sig_empresa ep $ruc_filtro
		order by nombre";
				
  	$result = fnp_ejecuta_query($sql,'S');
  	$optionInicio = ($inicio != '') ? $inicio : 'Seleccione' ;

  	if ($result) {
  		echo "<option value='0'>{$optionInicio}</option>";
		foreach ($result as $lista) {
			$selected = ($lista['ruc'] == $default) ? "selected='selected'" : "" ;
			echo "<option value='{$lista['ruc']}' {$selected}>{$lista['nombre']}</option>";
		}
  	} else {
		echo "<option value='0'>{$optionInicio}</option>";
	}
}


function obtiene_extencion_archivo($ext){
	$array_extension = array('bmp','docx','doc','dwg','eml','eps','exe','gif','html','jpeg','jpg','lnk','log','pdf','png','pptx','ppt','pst','ptb','rar','txt','xlsx','xls','zip');

	if (in_array($ext, $array_extension)) {
		$extension = $ext;
	} else {
		$extension = 'num';
	}

	return $extension;
}



function lista_archivos_upload($idproyecto,$tabla,$campo,$idrelacion){
	$sql="select nombre_archivo, codigo_archivo, extension, tamano, date_format(fecha,'%d/%m/%Y %r')as fecha,
		correo,substring(url,4) as url
		from sig_registro_upload
		left join usuarios on encargado = codigo
		where idproyecto='{$idproyecto}' and idrelacion='{$idrelacion}'
		and tabla_relacion='{$tabla}'
		and campo_filtro='{$campo}'";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		foreach ($result as $row) {
			$clase = obtiene_extencion_archivo($extension);
			echo "<li class='{$clase}'><a href='../download.php?prm_url={$row['url']}&prm_idarchivo={$row['codigo_archivo']}&prm_archivo={$row['nombre_archivo']}'><span>{$row['nombre_archivo']}</span></a> <span>{$row['fecha']} por {$row['correo']} ({$row['tamano']})</span></li>";
		}
	}
}



function nivel_acceso(&$arr_conocimiento,$perfil,$modulo,$fase,$conocimiento){
	$sql = "select restriccion_visualiza,restriccion_genera,restriccion_revisa,restriccion_aprueba,ac_activos
		from sig_configuracion
		where modulo = '{$modulo}'
		and area_conocimiento = '{$conocimiento}'
		and fase = '{$fase}'";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		//convierte los resultados en array
		foreach ($result as $row) {
			$array_visualiza = json_decode($row['restriccion_visualiza'],true);
			$array_genera = json_decode($row['restriccion_genera'],true);
			$array_revisa = json_decode($row['restriccion_revisa'],true);
			$array_aprueba = json_decode($row['restriccion_aprueba'],true);
			$array_activos = json_decode($row['ac_activos'],true);
		}

		//selecciona el array correspondiente al perfil

		if ($array_visualiza[$perfil]) {
			foreach ($array_visualiza[$perfil] as $key => $value) {
				//echo $value;
				if(in_array($value,$array_activos)){
					$arr_conocimiento[$value] = '';
				}
				
			}
		}

	}
}


function configura_restriccion($idproyecto,$area,$tipo_area,$opcion){
	$sql = "select configuracion from proyectos
		where codigop = '{$idproyecto}'";
	$result = fnp_mostrar_valor($sql,'configuracion');
	$array = json_decode($result,true);
	$array[$area][$tipo_area] = $opcion;

	$configuracion = json_encode($array);
	$update = "update proyectos set configuracion = '{$configuracion}'
		where codigop = '{$idproyecto}'";
	fnp_ejecuta_query($update,'U');
}



function valida_configuracion($idproyecto,$area){
	$sql_configuracion = "select configuracion from proyectos
		where codigop = '{$idproyecto}'";
	$result = fnp_mostrar_valor($sql_configuracion,'configuracion');
	$array_config = json_decode($result,true);
	return $array_config[$area];
}



function bloqueaControles($perfil,$modulo,$fase,$area,$conocimiento){
	$sql = "select restriccion_genera,restriccion_revisa,restriccion_aprueba
		from sig_configuracion
		where modulo = '{$modulo}'
		and area_conocimiento = '{$area}'
		and fase = '{$fase}'";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		//convierte los resultados en array
		foreach ($result as $row) {
			$array_genera = json_decode($row['restriccion_genera'],true);
			$array_revisa = json_decode($row['restriccion_revisa'],true);
			$array_aprueba = json_decode($row['restriccion_aprueba'],true);
		}

		//selecciona el array correspondiente al perfil
		$genera = $array_genera[$perfil];
		$revisa = $array_revisa[$perfil];
		$aprueba = $array_aprueba[$perfil];

		if ($genera || $revisa || $aprueba) {
			echo "<input type='hidden' class='crtcontrol' id='ctr_control_{$conocimiento}' value=''>";
		} else {
			echo "<input type='hidden' class='crtcontrol' id='ctr_control_{$conocimiento}' value='hidden'>";
		}
	}
}


function ctrl_administracion($perfil,$modulo,$fase,$area,$conocimiento,$configuracion='',$name_boton='',$ocultar='',$clas_asigna=''){
	$sql = "select restriccion_genera,restriccion_revisa,restriccion_aprueba
		from sig_configuracion
		where modulo = '{$modulo}'
		and area_conocimiento = '{$area}'
		and fase = '{$fase}'";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		//convierte los resultados en array
		foreach ($result as $row) {
			$array_genera = json_decode($row['restriccion_genera'],true);
			$array_revisa = json_decode($row['restriccion_revisa'],true);
			$array_aprueba = json_decode($row['restriccion_aprueba'],true);
		}

		//selecciona el array correspondiente al perfil
		$array_genera[$perfil];
		$array_revisa[$perfil];
		$array_aprueba[$perfil];

		$visible = 'hidden';
		$aprueba = $revisa = $genera = 'hidden';

		if ($array_aprueba[$perfil]) {
			if (in_array($conocimiento, $array_aprueba[$perfil])) {
				$genera = $aprueba = $visible = '';
			}
		}

		if ($array_revisa[$perfil]) {
			if (in_array($conocimiento, $array_revisa[$perfil])) {
				$genera = $visible = '';
			}
		}

		if ($array_genera[$perfil]) {
			if (in_array($conocimiento, $array_genera[$perfil])) {
				$genera = $visible = '';
			}
		}

		$editar = (!$name_boton) ? 'editar' : $name_boton[0] ;
		$guardar = (!$name_boton) ? 'guardar' : $name_boton[1] ;


		if ($configuracion[$conocimiento] == 1) {
			$bnt_grabar = "<img src='../utilitarios/imagenes/disquete.png' title='guardar' class='{$guardar} {$genera} {$visible} {$clas_asigna} pointer hidden imgcontrol'>";
			$bnt_editar = "<img src='../utilitarios/imagenes/pencil.png' title='editar' class='{$editar} {$genera} {$visible} pointer hidden imgcontrol'>";

			echo "<img src='../utilitarios/imagenes/lock.png' title='bloquear' class='bloquear {$aprueba} {$visible} pointer'>";
			echo "<input type='hidden' class='crtcontrol' id='ctr_control_{$conocimiento}' value='hidden'>";
			if (!$ocultar) {
				echo $bnt_grabar;
				echo $bnt_editar;
			} else {
				echo ($ocultar[1] == '') ? $bnt_grabar : '' ;
				echo ($ocultar[0] == '') ? $bnt_editar : '' ;

			}

		} else {
			$bnt_grabar = "<img src='../utilitarios/imagenes/disquete.png' title='guardar' class='{$guardar} {$genera} {$visible} {$clas_asigna} pointer imgcontrol'>";
			$bnt_editar = "<img src='../utilitarios/imagenes/pencil.png' title='editar' class='{$editar} {$genera} {$visible} pointer imgcontrol'>";

			echo "<img src='../utilitarios/imagenes/unlock.png' title='bloquear' class='bloquear {$aprueba} {$visible} pointer'>";
			if (!$ocultar) {
				echo $bnt_grabar;
				echo $bnt_editar;
			} else {
				echo ($ocultar[1] == '') ? $bnt_grabar : '' ;
				echo ($ocultar[0] == '') ? $bnt_editar : '' ;

			}

		}
	}
}


function ctrl_adjunto($perfil,$modulo,$fase,$area,$conocimiento){
	$sql = "select restriccion_genera,restriccion_revisa,restriccion_aprueba
		from sig_configuracion
		where modulo = '{$modulo}'
		and area_conocimiento = '{$area}'
		and fase = '{$fase}'";
	$result = fnp_ejecuta_query($sql,'S');

	$permiso = array('adjunta'=>false,'edita'=>false,'elimina'=>false);

	if ($result) {
		//convierte los resultados en array
		foreach ($result as $row) {
			$array_genera = json_decode($row['restriccion_genera'],true);
			$array_revisa = json_decode($row['restriccion_revisa'],true);
			$array_aprueba = json_decode($row['restriccion_aprueba'],true);
		}

		//selecciona el array correspondiente al perfil
		$array_genera[$perfil];
		$array_revisa[$perfil];
		$array_aprueba[$perfil];

		if ($array_aprueba[$perfil]) {
			if (in_array($conocimiento, $array_aprueba[$perfil])) {
				$permiso['adjunta'] = true;
				$permiso['edita']   = true;
				$permiso['elimina'] = true;
			}
		}

		if ($array_revisa[$perfil]) {
			if (in_array($conocimiento, $array_revisa[$perfil])) {
				$permiso['adjunta'] = true;
				$permiso['edita']   = true;
				$permiso['elimina'] = true;
			}
		}

		if ($array_genera[$perfil]) {
			if (in_array($conocimiento, $array_genera[$perfil])) {
				$permiso['adjunta'] = true;
			}
		}
		return $permiso;
	}
}


function ctrl_objeto($perfil,$modulo,$fase,$area,$conocimiento){
	$sql = "select restriccion_genera,restriccion_revisa,restriccion_aprueba
		from sig_configuracion
		where modulo = '{$modulo}'
		and area_conocimiento = '{$area}'
		and fase = '{$fase}'";
	$result = fnp_ejecuta_query($sql,'S');

	if ($result) {
		//convierte los resultados en array
		foreach ($result as $row) {
			$array_genera = json_decode($row['restriccion_genera'],true);
			$array_revisa = json_decode($row['restriccion_revisa'],true);
			$array_aprueba = json_decode($row['restriccion_aprueba'],true);
		}

		//selecciona el array correspondiente al perfil

		$visible = 'hidden';
		$aprueba = $revisa = $genera = 'hidden';

		if ($array_aprueba[$perfil]) {
			if (in_array($conocimiento, $array_aprueba[$perfil])) {
				$genera = $aprueba = $visible = '';
			}
		}

		if ($array_revisa[$perfil]) {
			if (in_array($conocimiento, $array_revisa[$perfil])) {
				$genera = $visible = '';
			}
		}

		if ($array_genera[$perfil]) {
			if (in_array($conocimiento, $array_genera[$perfil])) {
				$genera = $visible = '';
			}
		}

		if($aprueba='' or $genera==''){

		 return '1';
		}else{
		 return '0';
		}


	}else{
	   return '0';
	}

}

/**********************************************************************************************
	Funcion que visualiza u oculta control dependiendo del perfil del usuario
	Autor: Jhorlly Vela Chong
	Parametros:
			$_modulo --> Modulo del Sistema
			$_perfil_acceso --> Perfil de Usuario
			$area_conoc_padre --> Area Conocimiento Principal
			$area_conoc --> Area Conocimiento a Consultar permiso
			$fase --> Fase de Proyecto
************************************************************************************************/
function hb_ctrl_perfil_usuario($_modulo,$_perfil_acceso,$area_conoc_padre,$area_conoc,$fase){							
	$v_existe_aprobar = "0";
	$v_existe_revisar = "0";
	$v_existe_generar = "0";
	$v_existe_visualizar = "0";
	$v_area_c = $area_conoc;	
	
	// ver perfil	
	$sql = " select restriccion_aprueba,restriccion_revisa,restriccion_visualiza,restriccion_genera
		   FROM sig_configuracion 
		   where modulo='$_modulo' 
		   and area_conocimiento='$area_conoc_padre' 
		   and fase='$fase' 
		   and criterio='Perfil'";
   
    $resul=fnp_ejecuta_query($sql,'S');

	  if (count($resul)>0){	 
		$rt_aprobar = $resul[0]['restriccion_aprueba'];
		$rt_revisar = $resul[0]['restriccion_revisa'];
		$rt_generar = $resul[0]['restriccion_genera'];
		$rt_visualizar = $resul[0]['restriccion_visualiza'];	
		
		$arr_config_aprobar = json_decode($rt_aprobar,true);		
		$arr_config_revisar = json_decode($rt_revisar,true);		
		$arr_config_generar = json_decode($rt_generar,true);		
		$arr_config_visualizar = json_decode($rt_visualizar,true);		
		
		$arr_aprobar = $arr_config_aprobar[$_perfil_acceso];
		$arr_revisar = $arr_config_revisar[$_perfil_acceso];
		$arr_gerenar = $arr_config_generar[$_perfil_acceso];
		$arr_visualizar = $arr_config_visualizar[$_perfil_acceso];						
		

		if ($rt_aprobar && count($arr_aprobar)>0){
			if (in_array($v_area_c,$arr_aprobar)){
				$v_existe_aprobar = "1";
			}		
		}		
		
		if ($rt_revisar && count($arr_revisar)>0){
			if (in_array($v_area_c,$arr_revisar)){
				$v_existe_revisar = "1";
			}								
		}	
		
		if ($rt_generar && count($arr_gerenar)>0){
			if (in_array($v_area_c,$arr_gerenar)){
				$v_existe_generar = "1";
			}								
		}	
		
		if ($rt_visualizar && count($arr_visualizar)>0){
			if (in_array($v_area_c,$arr_visualizar)){
				$v_existe_visualizar = "1";
			}								
		}				
		
		if	($v_existe_aprobar=="1"){
			$flag_visualizar = "";
		}else if ($v_existe_revisar=="1"){
			$flag_visualizar = "";
		}else if ($v_existe_generar=="1"){
			$flag_visualizar = "";	
		}else if ($v_existe_visualizar=="1"){
			$flag_visualizar = "hidden";		
		}else{
			$flag_visualizar = "hidden";		
		}
		return $flag_visualizar;
	}
}


/**********************************************************************************************
	Funcion que devuelve el tipo de acceso que puede realizar el usuario dependiendo del perfil asignado
	Autor: Luis Saenz Guerrero
	Parametros:
			$_modulo --> Modulo del Sistema
			$_perfil_acceso --> Perfil de Usuario
			$area_conoc_padre --> Area Conocimiento Principal
			$area_conoc --> Area Conocimiento a Consultar permiso
			$fase --> Fase de Proyecto
************************************************************************************************/
function ctrl_accion_perfil_usuario($_modulo,$_perfil_acceso,$area_conoc_padre,$area_conoc,$fase){							

	// ver perfil	 
	$sql = " select restriccion_aprueba,restriccion_revisa,restriccion_visualiza,restriccion_genera
		   FROM sig_configuracion 
		   where modulo='$_modulo' 
		   and area_conocimiento='$area_conoc_padre' 
		   and fase='$fase' 
		   and criterio='Perfil'";
	$resul=fnp_ejecuta_query($sql,'S');	
	
	if($resul){
		$rt_aprobar = $resul[0]['restriccion_aprueba'];
		$rt_revisar = $resul[0]['restriccion_revisa'];
		$rt_generar = $resul[0]['restriccion_genera'];
		$rt_visualizar = $resul[0]['restriccion_visualiza'];
		
		$nvalAcciones=array("A","R","G","V");	
		$v_accion='';
		
		$arr_acciones[0]=json_decode($rt_aprobar,true);	
		$arr_acciones[1]=json_decode($rt_revisar,true);	
		$arr_acciones[2]=json_decode($rt_generar,true);	
		$arr_acciones[3]=json_decode($rt_visualizar,true);	
					
		if(count($arr_acciones)>0){
			for($i=0; $i<count($arr_acciones);$i++){
				$arrAC=$arr_acciones[$i][$_perfil_acceso];				
				if (count($arrAC)>0){
					if (in_array($area_conoc,$arrAC)){
						$v_accion=$i;						
						$i=count($arr_acciones);
					}		
				}
			}
		}		
		return $nvalAcciones[$v_accion];		
	}else{
		return '';
	}
	
   
}



function fnp_genera_combo($prm_nombre,$prm_query,$prm_inicio = ''){
	fnp_conecta_bd();
	$query=mysql_query($prm_query);
	if($prm_inicio!=''){
	echo "<option value='null'>--".$prm_inicio."--</option>";
	}

	while($registro=mysql_fetch_row($query)){
		$selected = ($prm_nombre == $registro[0]) ? "selected='selected'" : '';
		echo "<option value='{$registro[0]}' {$selected}> " .ucwords(mb_strtolower($registro[1],'UTF-8'))."</option>";
	}

	fnp_cerrar_bd();
}



function obtiene_razon_social($ruc){
	$sql = "select lower(razon_social) as razon_social from sig_empresa where ruc = '{$ruc}'";
	return ucwords(fnp_mostrar_valor($sql,'razon_social'));
}


// Funciones Estimacion--------------------


function fnp_nombre_empresa($prm_ruc){
	if ($prm_ruc != 'invitado'){

	$sql_nombre_empresa="SELECT UPPER(CLIENTE) 'CLIENTE' FROM clientes
						 WHERE RUC='$prm_ruc'";
	$empresa=fnp_mostrar_valor($sql_nombre_empresa,'CLIENTE');
	if($empresa=='-'){
		$sql_nombre_empresa="SELECT UPPER(CONTRATISTA) 'CONTRATISTA' FROM contratistas
							 WHERE RUC='$prm_ruc'";
		$empresa=fnp_mostrar_valor($sql_nombre_empresa,'CONTRATISTA');
	}

	if($empresa=='-'){
		$sql_nombre_empresa="SELECT UPPER(PROYECTISTA) 'PROYECTISTA' FROM proyectistas
							 WHERE RUC='$prm_ruc'";
		$empresa=fnp_mostrar_valor($sql_nombre_empresa,'PROYECTISTA');
	}

	if($empresa=='-'){
		$empresa="PROYECTA INGENIEROS CIVILES";
	}

	} else {
		$empresa = 'INVITADO';
	}
	return $empresa;
}
// Fin Funciones Estimacion ---------------------


function copia_archivo($raiz,$c_origen,$c_destino){
/*
	chdir($raiz);
	$id_d=opendir($c_origen);

	while($fichero=readdir($id_d)){
		if(($fichero!=".")&&($fichero!="..")&&(!is_dir($fichero))){
			$listado_ficheros[]=$fichero;
		}
	}

	closedir($id_d);
	$id_d=opendir($raiz);

	foreach($listado_ficheros as $nombre){
		$origen=$c_origen."/".$nombre;
		$destino=$c_destino."/".$nombre;
		copy($origen,$destino);
	}
*/
	chdir($raiz);
	$id_d=opendir($c_origen);

	while($fichero=readdir($id_d)){
		if(($fichero!=".")&&($fichero!="..")&&(!is_dir($fichero))){
			$listado_ficheros[]=$fichero;
		}
	}

	closedir($id_d);
	$id_d=opendir($raiz);

	foreach($listado_ficheros as $nombre){
    	$origen=$c_origen."/".$nombre;
    	$destino=$c_destino."/".$nombre;
    	copy($origen,$destino);
    }
}

/**
 * Verifica que una fecha esté dentro del rango de fechas establecidas
 * @param $start_date fecha de inicio
 * @param $end_date fecha final
 * @param $evaluame fecha a comparar
 * @return true si esta en el rango, false si no lo está
 */
function fecha_en_rango($start_date, $end_date, $evaluame) {
    $start_ts = strtotime($start_date);
    $end_ts = strtotime($end_date);
    $user_ts = strtotime($evaluame);
    return (($user_ts >= $start_ts) && ($user_ts <= $end_ts));
}

/*******************************************************************************************
Descripcion:  retorna la comparación entre 2 fechas
Autor:  SGLM                    
*******************************************************************************************/

function compara_fecha($fec_inicio,$fec_fin){
	
	// separamos los valores de la fecha con la que queremos operar
	list($dia,$mes,$año) = explode('/',$fec_inicio);
	list($diaf,$mesf,$añof) = explode('/',$fec_fin);
	// redefinimos la variable $fecha_operar y le almacenamos el valor unix
	$fec_inicio=mktime(0,0,0,$mes,$dia,$año);
	$fec_fin=mktime(0,0,0,$mesf,$diaf,$añof);
	
	// ahora estamos listos para efectuar operaciones con ambas fechas
	if ($fec_inicio > $fec_fin){
		// print 'La fecha actual es mayor a la fecha de operación';
		return 'Ma';
	}elseif ($fec_inicio < $fec_fin){
		// print 'La fecha actual es mayor a la fecha de operación';
		return 'Me';
	}else{
		return 'Ig';
	}
	
}


/*******************************************************************************************
Descripcion:  retorna impresión del Logotipo de Proyecta en las cabeceras de reportes
Autor:  JAVC                    
*******************************************************************************************/
function logo_cabecera_reporte(){	
	echo "<br/><br/>";
	echo "<div style='margin-top:30px; text-align:right; margin-right:70px'>";
	echo "<img src='../../utilitarios/imagenes/logo2.jpg' />";
	echo "</div>";
	echo "<br/>";
}


/*****************************************************************************************
Descripcion: 
		Funcion que retorna la firma digital de proyecta en reportes
Autor:  JAVC      
*************************************************************************************/
function firma_hoja_reporte(){
	echo "<img src='../../utilitarios/imagenes/logo_firma_pie_pagina.jpg' />";
}


function firma_hoja_reporte_vertical(){
	
$firma ="<div style='rotate: -90; color:#999999; position: absolute; width: 200mm; height: 4mm; left:200mm; top: 40mm;"; 
$firma .= "font-style: italic; font-weight: normal; text-align: center; font-size: 2.5mm;'>";
$firma .= "Documento generado por el SIP - PROYECTA Ingenieros Civiles SAC - echo [INDECOPI - 00407-2011] - pagina [[page_cu]]/[[page_nb]]";  
$firma .= "&nbsp;&nbsp;&nbsp;- &nbsp; Codigo:00001  -  Fecha:" .date('d/m/Y') ;
$firma .= "</div>";
echo $firma;
}



/******************************************************************************
Descripcion: 
			retorna decripcion del registro de tabla uniformat
Autor:  JAVC      
Parametros: $id --> Codigo de Tabla Uniformat  
*******************************************************************************/
function ObDesComponenteUniformat($id){
	$sql = "select descripcion from uniformat where codigo ='$id'";
	$desUniformat = fnp_mostrar_valor($sql,'descripcion');	
	return $desUniformat;
}

/******************************************************************************
Descripcion: 
			funcion que permite eliminar un caracter especial de una cadena
Autor:  JAVC      
Parametros: $char_quitar --> Caracret a suprimir  
			$cadena --> Cadena de caracteres
*******************************************************************************/
function QuitaCharEspecial($char_quitar,$cadena){
	$cadena =  str_replace("'","",$cadena);
	return $cadena;
}

?>